Getting Ready: The LinkedIn System
Understand the LinkedIn problem and learn the questions to simplify this problem further.
Problem definition#
LinkedIn is an employment-focused social network platform to manage the user's professional identity. This platform is primarily used to facilitate its users. It helps them find new opportunities, grow their careers, and connect with the people they know and trust professionally. Moreover, this platform allows employers to post jobs. It allows job seekers to post their resumes to find the best employment match for themselves. Therefore, LinkedIn is used for career development and professional networking.
LinkedIn allows both workers and companies to create profiles and pages, respectively. The LinkedIn users' profile page represents their education, experience, skills, achievements, and recommendations. LinkedIn also allows its users to create posts regarding a topic of interest, comment on a post, invite other users to become a connection, message other users, and create groups to form a community of similar users. LinkedIn generates a personalized feed for its users based on their connections, job, work, and education history, liked pages, groups, and the content they engage with to ensure the best experience.
LinkedIn is very similar to Facebook in terms of its layout and design. These features are more specialized because they cater to professionals. However, if we know how to use Facebook or any other similar social network, we may find LinkedIn familiar.
Expectations from the interviewee#
LinkedIn provides multiple functionalities to its users. It is essential to narrow down the components you will include in your LinkedIn design. The section below provides an overview of some of the main expectations that the interviewer will want to hear you discuss in more detail during the interview.
Discoverability#
It is important to develop a better understanding of how LinkedIn’s discoverability feature works. The interviewer would expect you to ask the questions listed below:
How can users search the job opportunities for themselves?
How are companies able to find out the perfect match for their job openings?
How are users able to search other users’ profiles?
Can users search for other users using their company name/employment history and job type?
Connections and following#
Both connections and following are the primary features of LinkedIn. Make sure to ask the following questions from the interviewer:
How are users able to connect with other users?
Can a page connect with other pages as well?
How can users follow or unfollow the pages without becoming a direct connection?
Groups, pages, and jobs#
Groups and pages on LinkedIn create a space for people looking for similar job opportunities. Make sure to define your requirements. You may ask the following questions from the interviewer:
Can the users create both groups and pages in addition to their user profiles?
Can both the users and companies create groups and pages?
Can the individual user post a job?
Can a user join any group, or are there any criteria for joining the group?
Alerts#
Notifications and alerts allow users to stay updated with the activity in their circle. Therefore, you may want to understand how alerts work in your system. You may ask the following questions:
How will users be notified of preselected events?
How much control do users have in choosing what notifications they can receive?
Design approach#
We’ll design LinkedIn using the bottom-up design approach. For this purpose, we will follow the steps below:
Identify and design the smallest components first—features like a post and comment.
Use these small components to design bigger components—a page, group, and profile.
Repeat the steps above until we design the complete LinkedIn platform.
Design pattern #
During an interview, it is always a good practice to discuss the design patterns that a parking lot system falls under. Stating the design patterns gives the interviewer a positive impression and shows that the interviewee is well-versed in the advanced concepts of object-oriented design.
Try to answer the following question. If you are not familiar with design patterns, don’t worry! You can learn about them by asking questions like, “Define design patterns.”
Please enter the correct design pattern(s)
.
Let’s explore the requirements of the LinkedIn design in the next lesson.
Code for Cricinfo
Requirements for LinkedIn